package com.tac.service.impl;

import com.tac.common.R;
import com.tac.dao.CourseDao;
import com.tac.dao.SelectCourseDao;
import com.tac.pojo.SelectCourse;
import com.tac.pojo.SelectCourseDto;
import com.tac.service.SelectCourseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.time.LocalDateTime;
import java.util.List;

@Service
public class SelectCourseServiceImpl implements SelectCourseService {
    @Autowired
    private SelectCourseDao selectCourseDao;
    @Autowired
    private CourseDao courseDao;
    @Override
    public R InsertBySidAndCid(Integer sid,Integer cid) {


        //等下判定一下有没有传值过来
        SelectCourse selectCourse = new SelectCourse();
        selectCourse.setCourseId(cid);
        selectCourse.setStudentId(sid);
        selectCourse.setSelectDate(LocalDateTime.now());
        selectCourse.setStatus(0);
        SelectCourse selectcourse = selectCourseDao.selectBySidAndCid(sid, cid);
        if(selectcourse!=null){
            if(selectcourse.getStatus()==-1){
                selectcourse.setStatus(0);
                selectCourseDao.UpdateByid(selectcourse.getId());
                return   R.success(null,"选课成功");
            }
            return R.error("不能重复选课");
        }
        Integer integer = selectCourseDao.InsertBySidAndCid(selectCourse);
        if(integer>0){
            Integer integer1 = courseDao.updateAmount(selectCourse.getCourseId());
            if(integer1>0){
              return   R.success(null,"选课成功");
            }else {
                int i=1/0; //用来回滚
            }
        }
        return R.error("选课失败");
    }

    /**
     * 退课
     * @param id
     * @return
     */
    @Override
    public R UpdateBySidAndCid2(Integer id) {
        Integer integer = selectCourseDao.UpdateBySidAndCid2(id);
        if(integer>0){
            Integer integer1 = courseDao.updateAmount2(id);
            if(integer1>0){
                return   R.success(null,"退课成功");

            }else {
                int i=1/0; //用来回滚
            }
        }
        return R.error("退课失败");
    }

    @Override
    public List<SelectCourse> selectBysid(Integer sid) {
        List<SelectCourse> selectCourses = selectCourseDao.selectBysid(sid);
        return selectCourses;
    }

    @Override
    public List<SelectCourse> selectBycid(Integer cid) {
        List<SelectCourse> selectCourses = selectCourseDao.selectBycid(cid);
        return selectCourses;
    }

    @Override
    public String selectBySidAndCid(Integer sid, Integer cid) {
        SelectCourse selectCourse = selectCourseDao.selectBySidAndCid(sid, cid);
        if(selectCourse==null){
            return "没有选课";
        }
        if(selectCourse.getStatus()==0){
            return "选课了";
        }
        return "没有选课";
    }

    public List<SelectCourseDto> selectAll(Integer end) {
        int i=end*5;
        List<SelectCourseDto> selectCourseDtos = selectCourseDao.selectAll(i);
        return selectCourseDtos;
    }

}
